There are several different computing architectures prevalent today. Generally, each architecture has software applications and programs that are specifically created to properly operate within that particular architecture. When the applications operate in an architecture they were designed to operate within, it is commonly referred to as operating in a “native” environment. However, it may be beneficial or desirable to operate some programs in a non-native environment, i.e., in an architecture for which they were not specifically designed.
Binary translation and, specifically, dynamic binary translation provides translation of binary code so that applications may operate in a non-native environment. A guest process running on a host system through a dynamic translator may appear as a native process to the host operating system. The host system may have little or no knowledge that the process is being translated. However, architectural differences may make it difficult to monitor, debug, and/or control the guest process.